home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / apus / boothack / old / bh980723.lha / bh980723 / ppc_boot.s < prev    next >
Text File  |  1992-10-10  |  4KB  |  276 lines

  1.  # GNU C 2.7.2.1
  2.  # -O1 -fdefer-pop -fomit-frame-pointer -fthread-jumps -fpeephole
  3.  # -ffunction-cse -finline -fpcc-struct-return -fcommon -fgnu-linker -mpowerpc
  4.  # -mnew-mnemonics
  5.  
  6.     .file    "ppc_boot.c"
  7. gcc2_compiled.:
  8.     .section    ".text"
  9.     .align 2
  10.     .globl main
  11.     .type     main,@function
  12.     .long 0x401c
  13. main:
  14.     stwu 1,-16(1)
  15.     mflr 0
  16.     stw 31,12(1)
  17.     stw 0,20(1)
  18.     bl progress_init
  19.     li 3,97
  20.     bl progress
  21.     li 9,0
  22.     lis 0,0xf
  23.     ori 0,0,16959
  24. .L4:
  25.     addi 9,9,1
  26.     cmpw 1,9,0
  27.     bc 4,5,.L4
  28.     li 3,98
  29.     bl progress
  30.     lis 11,0xdf
  31.     ori 11,11,61594
  32.     lis 9,0xdf
  33.     ori 9,9,61596
  34.     li 0,32767
  35.     sth 0,0(11)
  36.     sth 0,0(9)
  37.     li 3,99
  38.     bl progress
  39.     bl goSupervisor
  40.     li 3,100
  41.     bl progress
  42.     bl PPCCacheFlushAll
  43.     mfspr 0,1008       
  44.     lis   3,0          
  45.     ori   3,3,0xc000   
  46.     andc  0,0,3        
  47.     sync               
  48.     isync              
  49.     mtspr 1008,0       
  50.     mfmsr 0            
  51.     li    3,0b110000   
  52.     andc  0,0,3        
  53.     isync              
  54.     mtmsr 0            
  55.     sync               
  56.     
  57.     lis 9,0xf6
  58.     ori 9,9,24
  59.     li 0,129
  60.     stb 0,0(9)
  61.     li 3,101
  62.     bl progress
  63.     lis 9,0xf
  64.     ori 9,9,65280
  65.     lwz 31,0(9)
  66.     addi 31,31,512
  67.     rlwinm 0,31,0,30,31
  68.     addic 0,0,-4
  69.     subf 31,0,31
  70.     addis 9,0,relocate@ha
  71.     addi 11,9,relocate@l
  72.     mr 10,31
  73.     addis 9,0,relocateEnd@ha
  74.     addi 9,9,relocateEnd@l
  75.     subf 9,11,9
  76.     srwi. 9,9,2
  77.     bc 12,0,.L8
  78. .L10:
  79.     lwz 0,0(11)
  80.     stw 0,0(10)
  81.     addi 10,10,4
  82.     addi 11,11,4
  83.     addic. 9,9,-1
  84.     bc 4,0,.L10
  85. .L8:
  86.     li 3,102
  87.     bl progress
  88.     mr 0,31
  89.     mtlr  0             
  90.     blr    
  91.     
  92. .L14:
  93.     b .L14
  94. .Lfe1:
  95.     .size     main,.Lfe1-main
  96.     .align 2
  97.     .globl relocate
  98.     .type     relocate,@function
  99.     .long 0x402c
  100. relocate:
  101.     stwu 1,-16(1)
  102.     mflr 0
  103.     stw 30,8(1)
  104.     stw 31,12(1)
  105.     stw 0,20(1)
  106.     li 3,103
  107.     bl progress
  108.     lis 9,0xf
  109.     ori 9,9,65280
  110.     lwz 30,0(9)
  111.     lwz 31,0(30)
  112.     lwz 9,4(30)
  113.     lwz 0,8(30)
  114.     add 11,9,0
  115.     lwz 0,12(30)
  116.     add 11,11,0
  117.     cmpw 1,9,11
  118.     bc 12,6,.L17
  119. .L18:
  120.     lbz 0,0(31)
  121.     stb 0,0(9)
  122.     addi 31,31,1
  123.     addi 9,9,1
  124.     cmpw 1,9,11
  125.     bc 4,6,.L18
  126. .L17:
  127.     li 3,104
  128.     bl progress
  129.     lwz 9,4(30)
  130.     lwz 0,20(30)
  131.     add 9,9,0
  132.     lwz 0,16(30)
  133.     subf 11,0,9
  134.     add 31,31,0
  135.     cmpw 1,9,11
  136.     bc 12,6,.L21
  137. .L22:
  138.     lbzu 0,-1(31)
  139.     stbu 0,-1(9)
  140.     cmpw 1,9,11
  141.     bc 4,6,.L22
  142. .L21:
  143.     li 3,105
  144.     bl progress
  145.     lis 11,0xfff0
  146.     lwz 9,4(30)
  147.     addis 9,9,0x4000
  148.     stw 9,0(11)
  149.     lwz 9,4(30)
  150.     addis 0,9,0x4000
  151.     stw 0,0(9)
  152.     li 3,75
  153.     bl progress
  154.     lwz 0,16(30)
  155.     cmpwi 1,0,0
  156.     bc 12,6,.L24
  157.     lwz 5,20(30)
  158.     addis 5,5,0xc000
  159.     subf 4,0,5
  160.     b .L25
  161. .L24:
  162.     li 4,0
  163. .L25:
  164.     lis 3,0x6170
  165.     ori 3,3,30067
  166.     lwz 7,4(30)
  167.     addi 7,7,12
  168.     mtlr 7 
  169.     blr    
  170.     
  171. .L28:
  172.     b .L28
  173. .Lfe2:
  174.     .size     relocate,.Lfe2-relocate
  175.     .align 2
  176.     .globl goSupervisor
  177.     .type     goSupervisor,@function
  178.     .long 0x400c
  179. goSupervisor:
  180.     stwu 1,-16(1)
  181.     mflr 0
  182.     stw 0,20(1)
  183.     addis 9,0,setPRend@ha
  184.     addi 9,9,setPRend@l
  185.     addis 11,0,setPR@ha
  186.     addi 11,11,setPR@l
  187.     subf 9,11,9
  188.     lis 10,0xfff0
  189.     ori 10,10,1792
  190.     srawi 9,9,2
  191.     addze. 9,9
  192.     bc 4,1,.L31
  193. .L33:
  194.     lwz 0,0(11)
  195.     stw 0,0(10)
  196.     addi 10,10,4
  197.     addi 11,11,4
  198.     addic. 9,9,-1
  199.     bc 12,1,.L33
  200. .L31:
  201.     bl PPCCacheFlushAll
  202.     trap 
  203.     
  204.     lwz 0,20(1)
  205.     mtlr 0
  206.     addi 1,1,16
  207.     blr
  208. .Lfe3:
  209.     .size     goSupervisor,.Lfe3-goSupervisor
  210.     .align 2
  211.     .globl progress_init
  212.     .type     progress_init,@function
  213.     .long 0x4008
  214. progress_init:
  215.     stwu 1,-16(1)
  216.     lis 9,0xf
  217.     ori 9,9,65280
  218.     lwz 9,0(9)
  219.     lwz 11,24(9)
  220.     lis 0,0x5341
  221.     ori 0,0,22085
  222.     stw 0,0(11)
  223.     addi 9,11,4
  224.     lis 0,0x424f
  225.     ori 0,0,20308
  226.     stw 0,4(11)
  227.     stwu 11,4(9)
  228.     li 0,0
  229.     stw 0,4(9)
  230.     addi 1,1,16
  231.     blr
  232. .Lfe4:
  233.     .size     progress_init,.Lfe4-progress_init
  234.     .align 2
  235.     .globl progress
  236.     .type     progress,@function
  237.     .long 0x4008
  238. progress:
  239.     stwu 1,-16(1)
  240.     lis 9,0xf
  241.     ori 9,9,65280
  242.     lwz 9,0(9)
  243.     lwz 9,24(9)
  244.     lwz 0,12(9)
  245.     addic 0,0,16
  246.     stbx 3,9,0
  247.     lwz 0,12(9)
  248.     addic 0,0,1
  249.     stw 0,12(9)
  250.     addi 1,1,16
  251.     blr
  252. .Lfe5:
  253.     .size     progress,.Lfe5-progress
  254.     .text
  255. .align 4
  256. setPR:
  257. /* Increase the return EA so we get to the next instruction */
  258. mtsprg       1,1
  259. mfsrr0       1
  260. addi         1,1,4
  261. mtsrr0       1
  262. mfsprg       1,1
  263. /* Fiddle the PR bit */
  264. mfsrr1       0
  265. rlwinm       0,0,0,18,16
  266. mtsrr1       0
  267. rfi
  268. setPRend:
  269.  
  270.     .text
  271. .align 4
  272. relocateEnd:
  273. nop
  274.  
  275.     .ident    "GCC: (GNU) 2.7.2.1"
  276.